package Year22_Month06.day08;

public class 对称二叉树_递归 {
    public boolean isSymmetric(TreeNode root) {
        if(root == null){
            return false;
        }
        return DFS(root.left,root.right);
    }

    public boolean DFS(TreeNode left,TreeNode right){
        //如果说左右子树都为Null,那就是true
        if(left == null && right == null){
            return true;
        }
        //如果说其中有有一个为空,那就是flase
        if(left == null || right == null){
            return false;
        }
        //如果当前节点不相同，就返回false
        if(left.val != right.val){
            return false;
        }
        //镜像对称，所以是左子树的左子树和右子树的右子树比对，左子树的右子树和右子树的左子树比对
        return DFS(left.left,right.right) && DFS(left.right,right.left);
    }
}
